/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controlador;

import java.util.* ;
import modelo.*;
import vista.*;


/**
 *
 * @author lidier
 */
public class principal {
    public static int seleccion = 0;
    public static int quantum = 0;
    public static List lista_procesos = null;
    public static final algoritmos al = new algoritmos();
    
    public static void main(String args[])
    {
        /*
        List lista_procesos = new java.util.ArrayList<proceso>();
        proceso p;
        
        p = new proceso("proc1",001,3,0);lista_procesos.add(p);        
        p = new proceso("proc2",001,1,3);lista_procesos.add(p);
        p = new proceso("proc3",001,2,3);lista_procesos.add(p);
        p = new proceso("proc4",001,1,4);lista_procesos.add(p);
        p = new proceso("proc5",001,3,4.2);lista_procesos.add(p);
        p = new proceso("proc6",001,2,6);lista_procesos.add(p);
        
        
        algoritmos al = new algoritmos();
        lista_procesos = al.algoritmo_rr(lista_procesos,1);
        imprimir_lista(lista_procesos);
         * 
         */
        
        Inicio inicio = new Inicio();
        inicio.setVisible(true);
    }
    public static void abrir_inicio()
    {
        Inicio inicio = new Inicio();
        inicio.setVisible(true);
    }
    
    public static void abrir_insertions(int sel, int q)
    {
        seleccion = sel; // 0 = RR | 1 = SJF | 2 = FCFS
        quantum = q;
        Insertions insertions = new Insertions();
        insertions.setVisible(true);
    }
    
    public static void abrir_grafico(List l)
    {
        String nom_al = "error";
        switch(seleccion)
        {
            case 0:{l = al.algoritmo_rr(l, quantum);nom_al="RoundRobin";break;}
            case 1:{l = al.algoritmo_sjf(l);nom_al="SJF";break;}
            case 2:{l = al.algoritmo_fcfs(l);nom_al="FCFS";break;}
        }
        
        grafico ventana = new grafico(l,nom_al);
    //    ventana.setSize(400,200);
        ventana.setVisible(true);
        ventana.dibujar_procesos();
    }
    
    public static void imprimir_lista(List l)
    {
        
        proceso p = null;
        if (l.isEmpty())
        {
            System.out.println("lista vacia");
            return;
        }
        
        while (!l.isEmpty())
        {
            p = (proceso)l.get(0);
            l.remove(0);
            System.out.println("nom-> "+p.nom+" | pid-> "+p.pid+" | td-> "+p.td+" | tl-> "+p.tl);
        }        
    }
}
